package org.soderiakelvy.controller.sujeto;

import java.util.List;
import java.util.Map;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

import javax.faces.context.FacesContext;

import org.soderiakelvy.controller.util.Constante;
import org.soderiakelvy.controller.util.SelectOneMany;
import org.soderiakelvy.model.domain.CondicionIvaVO;
import org.soderiakelvy.model.service.SujetoServicio;
import org.soderiakelvy.model.service.imp.SujetoServicioImpl;
import org.soderiakelvy.model.util.ConstantModel;

@ManagedBean
@ViewScoped
public class CondicionIvaList {
	private List<CondicionIvaVO> allCondicionIva = SelectOneMany.getAllCondicionIva();
	private SujetoServicio servicio = new SujetoServicioImpl();
	private CondicionIvaVO condicionIva = new CondicionIvaVO();
	
	public CondicionIvaList() {
		System.out.println("Constructor CONDICION_IVA_LIST");
	}
	
	public String nuevaCondicionIva(){
		return Constante.URL_CONDICION_IVA_NEW;
	}
	
	public void eliminarCondicionIva(){
		System.out.println("BAJA "+this.condicionIva.getNombre());
		
		String result = servicio.deleteCondicionIvaVO(condicionIva);
		if(result.equals(ConstantModel.SUCCESS)){
			allCondicionIva = SelectOneMany.getAllCondicionIva();
		}else{
			if(result.equals(ConstantModel.DELETE_ASIGNADO)){
				FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_WARN,"No se puede eliminar la Condicion de Iva porque tiene Contribuciones asignadas", "sss"));
			}else {
				FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_FATAL,"Error al Insertar un registro", "Surgio un error al eliminar un registro. Comuicarse con el responsable del Sistema"));
			}
		}
	}
	
	public void bajaListener(CondicionIvaVO ci){
		this.condicionIva = ci;
		System.out.println("BAJA LISTENER "+this.condicionIva.getNombre());
	}

	public String prepareEdit(CondicionIvaVO condicionIva) {
		FacesContext fc = FacesContext.getCurrentInstance();
		Map<String,Object> sessionParams = fc.getExternalContext().getSessionMap();
		sessionParams.put("condicionIva", condicionIva);
		return Constante.URL_CONDICION_IVA_EDIT;	
	}

	public List<CondicionIvaVO> getAllCondicionIva() {
		return allCondicionIva;
	}

	public CondicionIvaVO getCondicionIva() {
		return condicionIva;
	}

	public void setCondicionIva(CondicionIvaVO condicionIva) {
		this.condicionIva = condicionIva;
	}
}
